<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 数据类型的相互转化
        //    强制转化
        //    隐式转化


        // 需要一个年龄   数字
        // 后端传一个数据  '20'


        var n = '20' ;


        // 强制转化  
        //    其他类型转数字   Number()
        //        字符串转成数字  
        //            纯数字字符串 ， 成功的转成对应的数字
        //            非数字字符串 -> NaN
        //            空字符串和空格字符串  -> 0    
        //        布尔值转成数字 
        //             true -> 1
        //             false -> 0   
        //         null -> 0
        //         undefined -> NaN


        //   其他类型转字符串  String()    全部相当于加了引号

        //   其他类型转成布尔值  Boolean()
        //       0和NaN -> false
        //       空串 -> false   空格字符串 -> true
        //       null -> false
        //       undefined -> false



        var m = Number(n) ;    // 大写的时候 -- 构造函数
        console.log(m) ;

        var x = Number('') ;
        console.log(x) ;   // 0

        var x = Number('     ') ;
        console.log(x) ;   // 0



        console.log(Number(true)) ;  // 1
        console.log(Number(false)) ;  // 0


        console.log(Number(null)) ;   // 0
        console.log(Number(undefined)) ;  // NaN




        console.log(String(1)) ;
        console.log(String(NaN)) ;
        console.log(String(true)) ;
        console.log(String(null)) ;
        console.log(String(undefined)) ;



        console.log(Boolean(NaN)) ;
        console.log(Boolean('   ')) ;

        console.log(Boolean(null)) ;
        console.log(Boolean(undefined)) ;


        console.log(null == undefined) ;   // true
        console.log(null === undefined) ; // false 


        // null 和 undefined 区别
        //    null == undefined  null !== undefined 
        //    null和undefined都转布尔值false 
        //    null转数字0  undefined转数字NaN
        //    null 空对象(也是一种值) ， undefined 已声明但是没有值



    </script>
    
</body>
</html>


